home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / X11 / xtartan-2.0 / actions.c next >
C/C++ Source or Header  |  1995-05-24  |  2KB  |  145 lines

  1. /* actions.c - translation table stuff and action routines for xtartan
  2.  * by Jim McBeath (jimmc@hisoft.uucp)
  3.  *
  4.  * 25.Oct.89  jimmc  Initial definition
  5.  *  9.Jan.91  jimmc  v2.0: Use XTartan resource file
  6.  */
  7.  
  8. #include <X11/Intrinsic.h>
  9. #include <stdio.h>
  10.  
  11. extern char *GetStringResource();
  12.  
  13. extern Widget TTopWidget;
  14. extern char *TartanName;
  15. extern char *TartanSett;
  16.  
  17. static void
  18. Help(w,xev,argv,argcp)
  19. Widget w;
  20. XEvent *xev;
  21. String *argv;
  22. int *argcp;
  23. {
  24.     char *s;
  25.  
  26.     s = GetStringResource(TTopWidget,"helpString");
  27.     if (s) {
  28.         (void)printf("%s",s);
  29.         XtFree(s);
  30.     } else {
  31.         (void)printf("No help available\n");
  32.     }
  33. }
  34.  
  35. static void
  36. SetTart(w,xev,argv,argcp)
  37. Widget w;
  38. XEvent *xev;
  39. String *argv;
  40. int *argcp;
  41. {
  42.     if (*argcp>0)
  43.         (void)setTartan(argv[0]);
  44. }
  45.  
  46. static void
  47. PrintName(w,xev,argv,argcp)
  48. Widget w;
  49. XEvent *xev;
  50. String *argv;
  51. int *argcp;
  52. {
  53.     (void)printf("%s\n", TartanName);
  54. }
  55.  
  56. static void
  57. PrintSettAction(w,xev,argv,argcp)
  58. Widget w;
  59. XEvent *xev;
  60. String *argv;
  61. int *argcp;
  62. {
  63.     PrintSett();
  64. }
  65.  
  66. static void
  67. DoExit(w,xev,argv,argcp)
  68. Widget w;
  69. XEvent *xev;
  70. String *argv;
  71. int *argcp;
  72. {
  73.     exit(0);
  74. }
  75.  
  76. static void
  77. Info(w,xev,argv,argcp)
  78. Widget w;
  79. XEvent *xev;
  80. String *argv;
  81. int *argcp;
  82. {
  83.     (void)printf("%s scale=%d linewidth=%d\n",
  84.         TartanName,getScale(),getWidth());
  85. }
  86.  
  87. static void
  88. Scale(w,xev,argv,argcp)
  89. Widget w;
  90. XEvent *xev;
  91. String *argv;
  92. int *argcp;
  93. {
  94.     if (*argcp>0)
  95.         changeScale(argv[0]);
  96.     else
  97.         changeScale("2");        /* default */
  98. }
  99.  
  100. static void
  101. LineWidth(w,xev,argv,argcp)
  102. Widget w;
  103. XEvent *xev;
  104. String *argv;
  105. int *argcp;
  106. {
  107.     if (*argcp>0)
  108.         changeWidth(argv[0]);
  109.     else
  110.         changeWidth("1");    /* default */
  111. }
  112.  
  113. static void
  114. Dump(w,xev,argv,argcp)
  115. Widget w;
  116. XEvent *xev;
  117. String *argv;
  118. int *argcp;
  119. {
  120.     (void)printf("Tartan setts:\n");
  121.     DumpTartans();
  122.     (void)printf("Color codes in cache:\n");
  123.     dumpColors();
  124. }
  125.  
  126. XtActionsRec actions[] = {
  127.     {"dump",    Dump },
  128.     {"exit",    DoExit },
  129.     {"help",    Help },
  130.     {"info",    Info },
  131.     {"lineWidth",    LineWidth },
  132.     {"name",    PrintName },
  133.     {"scale",    Scale },
  134.     {"setTartan",    SetTart },
  135.     {"sett",    PrintSettAction },
  136. };
  137.  
  138. initActions(appctx)
  139. XtAppContext appctx;
  140. {
  141.     XtAppAddActions(appctx,actions,XtNumber(actions));
  142. }
  143.  
  144. /* end */
  145.